package com.ruoyi.applet.domain;

import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * 订单列表对象 order
 *
 * @author ruoyi
 * @date 2024-12-13
 */
public class Order extends BaseEntity
{

    /** 订单表唯一标识 */
    @Excel(name = "订单表唯一标识")
    private String orderId;

    /** 下单的用户ID */
    @Excel(name = "下单的用户ID")
    private Long orderUerId;

    /** 订单状态外键（待支付、已支付、未发货、待收货） */
    @Excel(name = "订单状态外键", readConverterExp = "待=支付、已支付、未发货、待收货")
    private Long orderStatus;

    /** 订单总金额 */
    @Excel(name = "订单总金额")
    private BigDecimal orderTotal;

    /** 支付方式（微信，余额） */
    @Excel(name = "支付方式", readConverterExp = "微=信，余额")
    private String orderPaymentMethod;

    /** 支付时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "支付时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date orderPaymentTime;

    /** 发货时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "发货时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date orderDeliveryTime;

    /** 收货时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "收货时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date orderReceiptTime;

    /** 订单创建时间（支付时间） */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "订单创建时间", readConverterExp = "支=付时间")
    private Date orderCreateTime;

    /** 订单信息最后更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "订单信息最后更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date orderUpdateTime;

    /** 订单收货人 */
    @Excel(name = "订单收货人")
    private String orderReceiverName;

    /** 收货人联系方式 */
    @Excel(name = "收货人联系方式")
    private String orderReceiverPhone;

    /** 收货地址 */
    @Excel(name = "收货地址")
    private String orderReceiverAddress;

    /** 商品的外键 */
    @Excel(name = "商品的外键")
    private Long orderGoodsId;

    /** 实际支付金额 */
    @Excel(name = "实际支付金额")
    private BigDecimal orderPayPrice;

    /** 订单备注 */
    @Excel(name = "订单备注")
    private String orderNotes;

    /** 订单是否被删除(软删除) */
    @Excel(name = "订单是否被删除(软删除)")
    private Long orderIsDeleted;

    /** 与支付网关关联唯一标识 */
    @Excel(name = "与支付网关关联唯一标识")
    private String orderTransactionId;

    @Excel(name = "商品数量")
    private Long orderNumber;

    @Excel(name = "商品是否重复")
    private Long orderCount;

    @Excel(name = "秒杀Id")
    private Long orderSpikesInfo;

    public Order() {
    }

    public Order(String orderId, Long orderUerId, Long orderStatus, BigDecimal orderTotal, String orderPaymentMethod, Date orderPaymentTime, Date orderDeliveryTime, Date orderReceiptTime, Date orderCreateTime, Date orderUpdateTime, String orderReceiverName, String orderReceiverPhone, String orderReceiverAddress, Long orderGoodsId, BigDecimal orderPayPrice, String orderNotes, Long orderIsDeleted, String orderTransactionId, Long orderNumber, Long orderCount, Long orderSpikesInfo) {
        this.orderId = orderId;
        this.orderUerId = orderUerId;
        this.orderStatus = orderStatus;
        this.orderTotal = orderTotal;
        this.orderPaymentMethod = orderPaymentMethod;
        this.orderPaymentTime = orderPaymentTime;
        this.orderDeliveryTime = orderDeliveryTime;
        this.orderReceiptTime = orderReceiptTime;
        this.orderCreateTime = orderCreateTime;
        this.orderUpdateTime = orderUpdateTime;
        this.orderReceiverName = orderReceiverName;
        this.orderReceiverPhone = orderReceiverPhone;
        this.orderReceiverAddress = orderReceiverAddress;
        this.orderGoodsId = orderGoodsId;
        this.orderPayPrice = orderPayPrice;
        this.orderNotes = orderNotes;
        this.orderIsDeleted = orderIsDeleted;
        this.orderTransactionId = orderTransactionId;
        this.orderNumber = orderNumber;
        this.orderCount = orderCount;
        this.orderSpikesInfo = orderSpikesInfo;
    }

    /**
     * 获取
     * @return orderCreateTime
     */
    public String getOrderCreateTime()
    {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        return sdf.format(orderCreateTime);
    }

    /**
     * 设置
     * @param orderCreateTime
     */
    public void setOrderCreateTime(Date orderCreateTime) {
        this.orderCreateTime = orderCreateTime;
    }


    /**
     * 获取
     * @return orderId
     */
    public String getOrderId() {
        return orderId;
    }

    /**
     * 设置
     * @param orderId
     */
    public void setOrderId(String orderId) {
        this.orderId = orderId;
    }

    /**
     * 获取
     * @return orderUerId
     */
    public Long getOrderUerId() {
        return orderUerId;
    }

    /**
     * 设置
     * @param orderUerId
     */
    public void setOrderUerId(Long orderUerId) {
        this.orderUerId = orderUerId;
    }

    /**
     * 获取
     * @return orderStatus
     */
    public Long getOrderStatus() {
        return orderStatus;
    }

    /**
     * 设置
     * @param orderStatus
     */
    public void setOrderStatus(Long orderStatus) {
        this.orderStatus = orderStatus;
    }

    /**
     * 获取
     * @return orderTotal
     */
    public BigDecimal getOrderTotal() {
        return orderTotal;
    }

    /**
     * 设置
     * @param orderTotal
     */
    public void setOrderTotal(BigDecimal orderTotal) {
        this.orderTotal = orderTotal;
    }

    /**
     * 获取
     * @return orderPaymentMethod
     */
    public String getOrderPaymentMethod() {
        return orderPaymentMethod;
    }

    /**
     * 设置
     * @param orderPaymentMethod
     */
    public void setOrderPaymentMethod(String orderPaymentMethod) {
        this.orderPaymentMethod = orderPaymentMethod;
    }

    /**
     * 获取
     * @return orderPaymentTime
     */
    public Date getOrderPaymentTime() {
        return orderPaymentTime;
    }

    /**
     * 设置
     * @param orderPaymentTime
     */
    public void setOrderPaymentTime(Date orderPaymentTime) {
        this.orderPaymentTime = orderPaymentTime;
    }

    /**
     * 获取
     * @return orderDeliveryTime
     */
    public Date getOrderDeliveryTime() {
        return orderDeliveryTime;
    }

    /**
     * 设置
     * @param orderDeliveryTime
     */
    public void setOrderDeliveryTime(Date orderDeliveryTime) {
        this.orderDeliveryTime = orderDeliveryTime;
    }

    /**
     * 获取
     * @return orderReceiptTime
     */
    public Date getOrderReceiptTime() {
        return orderReceiptTime;
    }

    /**
     * 设置
     * @param orderReceiptTime
     */
    public void setOrderReceiptTime(Date orderReceiptTime) {
        this.orderReceiptTime = orderReceiptTime;
    }

    /**
     * 获取
     * @return orderUpdateTime
     */
    public Date getOrderUpdateTime() {
        return orderUpdateTime;
    }

    /**
     * 设置
     * @param orderUpdateTime
     */
    public void setOrderUpdateTime(Date orderUpdateTime) {
        this.orderUpdateTime = orderUpdateTime;
    }

    /**
     * 获取
     * @return orderReceiverName
     */
    public String getOrderReceiverName() {
        return orderReceiverName;
    }

    /**
     * 设置
     * @param orderReceiverName
     */
    public void setOrderReceiverName(String orderReceiverName) {
        this.orderReceiverName = orderReceiverName;
    }

    /**
     * 获取
     * @return orderReceiverPhone
     */
    public String getOrderReceiverPhone() {
        return orderReceiverPhone;
    }

    /**
     * 设置
     * @param orderReceiverPhone
     */
    public void setOrderReceiverPhone(String orderReceiverPhone) {
        this.orderReceiverPhone = orderReceiverPhone;
    }

    /**
     * 获取
     * @return orderReceiverAddress
     */
    public String getOrderReceiverAddress() {
        return orderReceiverAddress;
    }

    /**
     * 设置
     * @param orderReceiverAddress
     */
    public void setOrderReceiverAddress(String orderReceiverAddress) {
        this.orderReceiverAddress = orderReceiverAddress;
    }

    /**
     * 获取
     * @return orderGoodsId
     */
    public Long getOrderGoodsId() {
        return orderGoodsId;
    }

    /**
     * 设置
     * @param orderGoodsId
     */
    public void setOrderGoodsId(Long orderGoodsId) {
        this.orderGoodsId = orderGoodsId;
    }

    /**
     * 获取
     * @return orderPayPrice
     */
    public BigDecimal getOrderPayPrice() {
        return orderPayPrice;
    }

    /**
     * 设置
     * @param orderPayPrice
     */
    public void setOrderPayPrice(BigDecimal orderPayPrice) {
        this.orderPayPrice = orderPayPrice;
    }

    /**
     * 获取
     * @return orderNotes
     */
    public String getOrderNotes() {
        return orderNotes;
    }

    /**
     * 设置
     * @param orderNotes
     */
    public void setOrderNotes(String orderNotes) {
        this.orderNotes = orderNotes;
    }

    /**
     * 获取
     * @return orderIsDeleted
     */
    public Long getOrderIsDeleted() {
        return orderIsDeleted;
    }

    /**
     * 设置
     * @param orderIsDeleted
     */
    public void setOrderIsDeleted(Long orderIsDeleted) {
        this.orderIsDeleted = orderIsDeleted;
    }

    /**
     * 获取
     * @return orderTransactionId
     */
    public String getOrderTransactionId() {
        return orderTransactionId;
    }

    /**
     * 设置
     * @param orderTransactionId
     */
    public void setOrderTransactionId(String orderTransactionId) {
        this.orderTransactionId = orderTransactionId;
    }

    /**
     * 获取
     * @return orderNumber
     */
    public Long getOrderNumber() {
        return orderNumber;
    }

    /**
     * 设置
     * @param orderNumber
     */
    public void setOrderNumber(Long orderNumber) {
        this.orderNumber = orderNumber;
    }

    /**
     * 获取
     * @return orderCount
     */
    public Long getOrderCount() {
        return orderCount;
    }

    /**
     * 设置
     * @param orderCount
     */
    public void setOrderCount(Long orderCount) {
        this.orderCount = orderCount;
    }

    /**
     * 获取
     * @return orderSpikesInfo
     */
    public Long getOrderSpikesInfo() {
        return orderSpikesInfo;
    }

    /**
     * 设置
     * @param orderSpikesInfo
     */
    public void setOrderSpikesInfo(Long orderSpikesInfo) {
        this.orderSpikesInfo = orderSpikesInfo;
    }

    public String toString() {
        return "Order{orderId = " + orderId + ", orderUerId = " + orderUerId + ", orderStatus = " + orderStatus + ", orderTotal = " + orderTotal + ", orderPaymentMethod = " + orderPaymentMethod + ", orderPaymentTime = " + orderPaymentTime + ", orderDeliveryTime = " + orderDeliveryTime + ", orderReceiptTime = " + orderReceiptTime + ", orderCreateTime = " + orderCreateTime + ", orderUpdateTime = " + orderUpdateTime + ", orderReceiverName = " + orderReceiverName + ", orderReceiverPhone = " + orderReceiverPhone + ", orderReceiverAddress = " + orderReceiverAddress + ", orderGoodsId = " + orderGoodsId + ", orderPayPrice = " + orderPayPrice + ", orderNotes = " + orderNotes + ", orderIsDeleted = " + orderIsDeleted + ", orderTransactionId = " + orderTransactionId + ", orderNumber = " + orderNumber + ", orderCount = " + orderCount + ", orderSpikesInfo = " + orderSpikesInfo + "}";
    }
}
